草庐IT

Java Xpath 表达式

全部标签

c# - 计数正则表达式替换 (C#)

有没有办法计算Regex.Replace调用进行的替换次数?例如对于Regex.Replace("aaa","a","b");我想把数字3取出来(结果是"bbb");对于Regex.Replace("aaa","(?aa?)","${test}b");我想得到数字2(结果是"aabab")。我能想到的方法:使用MatchEvaluator递增捕获的变量,手动进行替换获取MatchCollection并迭代它,手动进行替换并保持计数首先搜索并获取MatchCollection,从中获取计数,然后进行单独的替换方法1和2需要手动解析$替换,方法3需要正则表达式匹配字符串两次。有没有更好的办

c# - 有效消除 .NET 表达式树中的公共(public)子表达式

我已经编写了一个DSL和一个从中生成.NET表达式树的编译器。树中的所有表达式都是无副作用的,并且表达式保证是“非语句”表达式(没有局部变量、循环、block等)。(编辑:树可能包括文字、属性访问、标准运算符和函数调用——它们可能在内部做一些奇特的事情,比如内存,但在外部没有副作用)。现在我想对其进行“公共(public)子表达式消除”优化。例如,给定一棵对应于C#lambda的树:foo=>(foo.Bar*5+foo.Baz*2>7)||(foo.Bar*5+foo.Baz*2...我想生成树等效项(忽略一些短路语义被忽略的事实):foo=>{varlocal1=foo.Bar*5

c# - 获取在 .NET 3.5 中的 Lambda 表达式中使用的属性名称

我有一个问题困扰了我一段时间,但我找不到答案。我需要获取在Lambda表达式中引用的属性的名称。我会将lambda表达式提供给一个返回字符串的方法。例如,如果我有:x=>x.WeirdPropertyName然后该方法将返回:"WeirdPropertyName"我读到可以用表达式树来完成,但我没有找到答案。感谢您的帮助 最佳答案 给你:stringGetPropertyName(Expression>property){varpropertyInfo=(property.BodyasMemberExpression).Member

JavaScript 正则表达式 : find non-numeric character

假设我有这两个字符串:“5/15/1983”和“1983.05.15”。假设字符串中的所有字符都是数字,除了可以出现在字符串中任何位置的“分隔符”字符。只有一个分隔符;字符串中任何给定非数字字符的所有实例都将相同。如何使用正则表达式提取此字符?有没有比下面的方法更有效的方法?"05-15-1983".replace(/\d/g,"")[0];谢谢! 最佳答案 "05-15-1983".match(/\D/)从技术上讲,这会返回一个包含一个字符串的数组,但它会在您需要的大多数地方隐式转换为字符串。

javascript - Ruby 1.9 和 Javascript 正则表达式之间的区别

除了Javascript的^和$等同于Ruby的\A和\z之外,还有什么其他微妙之处这两个正则表达式引擎有什么区别?我正在寻找相同正则表达式可能表现不同的细微差异,例如/^abc$/将在Ruby中匹配:123abcdef但它不会在Javascript中匹配。 最佳答案 Ruby支持但JavaScript不支持的特性:\a(响铃)\e(转义)\A(字符串开始)\Z(字符串结尾,最后一个换行符之前)\z(字符串结尾)转发引用\1到\9对失败组的反向引用也失败(?>regex)(原子组)\G(匹配尝试开始)(?#comment)支持自由间

javascript - 将 shell 通配符转换为正则表达式

我想在js中使用*.js、*.*.*等shell通配符搜索标题。问题是我遍历了一个标题列表,我需要使用js正则表达式测试来过滤文件。如何以良好的方式将shell通配符转换为正则表达式,或者是否有任何库已经这样做了?注意:我想要一个从shell通配符到正则表达式的通用转换器。 最佳答案 如果你想要一个通用的转换器函数,这应该可行:functionglobStringToRegex(str){returnnewRegExp(preg_quote(str).replace(/\\\*/g,'.*').replace(/\\\?/g,'.'

javascript - 在 Angular.js 的 ngModel 中使用表达式

在我的Controller中提供代码:$scope.entity={firstName:'Jack',lastName:'Bauer',location:{city:'NewYork'}};$scope.path='location.city';如何将ngModel动态绑定(bind)到path指定的entity的属性?我试过类似的方法,但无济于事: 最佳答案 Slava,我不太确定这是否是个好主意。但无论如何,您需要通过将此属性添加到您的输入ng-model-options="{getterSetter:true}来让您的模型ge

javascript - 使用正则表达式或其他方式替换字符串中的数字

我不太擅长正则表达式。我正在努力寻找一个小功能的解决方案。我有一个返回字符串的ajax响应“您的票已成功记录。请点击链接查看详细信息123432。”我所要做的就是用替换那个数字123432使用JavaScript。 最佳答案 试试这个:fixedString=yourString.replace(/(\d+)/g,"$1");这将为您提供一个如下所示的新字符串:Yourtickethasbeensuccessfullylogged.Pleasefollowthelinktoviewdetails123432.

javascript - 从范围中排除某些字符 - javascript 正则表达式

只验证单词最简单的正则表达式(我认为)/^\w+$/我想从中排除数字和_(因为它现在接受aa10aa和aa_aa,我想拒绝它们)我觉得可以通过/^[a-zA-z]+$/这意味着我必须采取与之前不同的方法。但是如果我想从这个范围中排除任何字符怎么办假设我不允许k、K、p、P或更多。有没有办法在不改变范围的情况下在范围内添加排除列表? 最佳答案 要从[a-zA-Z]中排除k或p,您需要使用否定先行断言。(?![kpKP])[a-zA-Z]+必要时使用anchor。^(?:(?![kpKP])[a-zA-Z])+$它在匹配每个字符之前检查

Javascript 正则表达式(负)lookbehind 在 firefox 中不起作用

我需要修改以下javascript正则表达式,因为其中的negativelookbehind会在firefox中引发错误:content=content.replace(/(?![^)(?:[\"])([^"]*?)(?)/g,'„$1“');有没有人有想法并且可以帮助我? 最佳答案 2020年7月1日更新从FireFox78版本开始,RegExp终于支持lookbehinds,dotAlls标志、Unicode转义序列和命名捕获,请参阅ReleaseNotes:NewRegExpengineinSpiderMonkey,addin